﻿using ProyectoDeTesis.Controladores;
using ProyectoDeTesis.Modelos.Filtros;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace ProyectoDeTesis.Vistas
{
    public partial class BuscarVuelos : Form
    {
        private int pantalla_id = 30;
        private VueloController vueloController = new VueloController();
        private PersonalController personalController = new PersonalController();
        private int vuelo_id_seleccionado = 0;
        private int usuario_id;
        private int turno = 0;
        public BuscarVuelos()
        {
            InitializeComponent();
            rdtFechaFin.Value = DateTime.Now.Date;
            rdtFechaInicio.Value = DateTime.Now.Date;
        }

        public BuscarVuelos(int usuario_id)
        {
            // TODO: Complete member initialization
            this.usuario_id = usuario_id;
            InitializeComponent();
            rdtFechaFin.Value = DateTime.Now.Date;
            rdtFechaInicio.Value = DateTime.Now.Date;

            turno = personalController.buscarTurno(usuario_id);
        }

        private void dgvResultados_CellClick(object sender, DataGridViewCellEventArgs e)
        {
            if (e.RowIndex > -1)
            {
                DataGridViewRow row = dgvResultados.Rows[e.RowIndex];
                vuelo_id_seleccionado = Convert.ToInt32(row.Cells[0].Value);
            }
        }

        private void BtnSearch_Click(object sender, EventArgs e)
        {
            cargarTabla();
        }

        private void BtnLimpiar_Click(object sender, EventArgs e)
        {
            rdtFechaFin.Value = DateTime.Now.Date;
            rdtFechaInicio.Value = DateTime.Now.Date;
            tbxVuelo.Text = "";
        }

        private void btnagregar_Click(object sender, EventArgs e)
        {
            if (vuelo_id_seleccionado > 0)
            {
                this.VueloId = vuelo_id_seleccionado;
                this.Dispose();
            }
            else
            {
                FormError form = new FormError("Debe seleccionar una fila primero.");
                form.ShowDialog(this);
            }
        }

        private void cargarTabla()
        {
            FiltroVuelo filtroVuelo = new FiltroVuelo();
            filtroVuelo.fecha_inicio = rdtFechaInicio.Value;
            filtroVuelo.fecha_fin = rdtFechaFin.Value.AddDays(1);
            filtroVuelo.vuelo = tbxVuelo.Text;
            filtroVuelo.turno = turno;

            mostrarDatostabla(filtroVuelo);
        }

        private void mostrarDatostabla(FiltroVuelo filtroVuelo)
        {
            List<ProyectoDeTesis.Vuelo> listaVuelo = vueloController.obtenerVuelos(filtroVuelo);

            dgvResultados.DataSource = listaVuelo;
            dgvResultados.Columns[0].Visible = false;
            dgvResultados.Columns[1].HeaderText = "Numero de vuelo";
            dgvResultados.Columns[2].HeaderText = "Tipo de Avión";
            dgvResultados.Columns[3].HeaderText = "Tipo de vuelo";
            dgvResultados.Columns[4].Visible = false;
            dgvResultados.Columns[5].HeaderText = "Destino";
            dgvResultados.Columns[6].HeaderText = "Nombre de Aeropuerto";
            dgvResultados.Columns[7].HeaderText = "Fecha de Salida";
            dgvResultados.Columns[8].HeaderText = "Hora de Salida";
            dgvResultados.Columns[9].HeaderText = "Fecha de LLegada";
            dgvResultados.Columns[10].HeaderText = "Hora de Llegada";
            dgvResultados.Columns[11].Visible = false;
            dgvResultados.Columns[12].Visible = false;
            dgvResultados.Columns[13].Visible = false;
            dgvResultados.Columns[14].Visible = false;
            dgvResultados.Columns[15].Visible = false;
            dgvResultados.Columns[16].Visible = false;
            dgvResultados.Columns[17].Visible = false;
            dgvResultados.Columns[1].Width = 80;
            dgvResultados.Columns[2].Width = 80;
            dgvResultados.Columns[3].Width = 80;
            dgvResultados.Columns[5].Width = 140;
            dgvResultados.Columns[6].Width = 200;
            dgvResultados.Columns[7].Width = 90;
            dgvResultados.Columns[8].Width = 90;
            dgvResultados.Columns[9].Width = 90;
            dgvResultados.Columns[10].Width = 90;
        }

        public int VueloId { get; set; }
    }
}
